// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

QT_BEGIN_NAMESPACE
class QAbstractItemModel;
class QCompleter;
QT_END_NAMESPACE
class TextEdit;

//! [0]
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);

public slots:
    void onOpen();
    void onSave();
    void onSaveAs();
    void onClose();
    void onRecentFileTriggered();
    void about();
    bool openFile(const QString &fileName); // 添加到 public slots

private:
    void createMenu();
    void createToolBar();
    void createRecentFilesMenu();
    void updateRecentFiles();
    bool saveFile(const QString &fileName); // 保持为 private
    QAbstractItemModel *modelFromFile(const QString& fileName);
    QCompleter *completer;
    TextEdit *textEdit;
    QString currentFile;
    QStringList recentFiles;
    QMenu *recentFilesMenu;
    QAction *openAction;
    QAction *saveAction;
    QAction *saveAsAction;
    QAction *closeAction;
    QList<QAction*> recentFileActions;
    QMenu *fileMenu;
};
//! [0]

#endif // MAINWINDOW_H
